Wireless communication with coded data frames

ABSTRACT

An example method of wireless data transmission may include obtaining, by a data link layer, a first data frame from a network layer, the first data frame for wireless transmission and obtaining, by the data link layer, a second data frame from the network layer, the second data frame for wireless transmission. The method may further include coding, at the data link layer, the first data frame together with the second data frame to generate a third data frame and encoding a first signal with the third data frame using a first frequency segment. The method may further include providing the first signal for wireless transmission.

CROSS-REFERENCE TO RELATED APPLICATION

This patent application claims priority to U.S. Provisional Patent Application No. 63/019,220, filed on May 1, 2020, which is incorporated herein by reference in its entirety.

FIELD

The implementations discussed herein are related to wireless communication with coded data frames.

BACKGROUND

Unless otherwise indicated in the present disclosure, the materials described in the present disclosure are not prior art to the claims in the present application and are not admitted to be prior art by inclusion in this section.

Wireless communications may occur by transmitting data over frequencies designated for wireless transmission. For example, a transmitting device may send data over a first contiguous range of frequencies, such as frequencies associated with a channel within a wireless frequency band of the frequency spectrum. The receiving device may obtain the data using the first contiguous range of frequencies. In response to the data not being correctly received, the transmitting device may resend the data again over the first contiguous range of frequencies.

The subject matter claimed in the present disclosure is not limited to implementations that solve any disadvantages or that operate only in environments such as those described above. Rather, this background is only provided to illustrate one example technology area where some implementations described in the present disclosure may be practiced.

SUMMARY

An example method of wireless data transmission may include obtaining, by a data link layer, a first data frame from a network layer, the first data frame for wireless transmission and obtaining, by the data link layer, a second data frame from the network layer, the second data frame for wireless transmission. The method may further include coding, at the data link layer, the first data frame together with the second data frame to generate a third data frame and encoding a first signal with the third data frame using a first frequency segment. The method may further include providing the first signal for wireless transmission.

BRIEF DESCRIPTION OF THE DRAWINGS

Example implementations will be described and explained with additional specificity and detail through the use of the accompanying drawings in which:

FIG. 1 illustrates an example environment that includes wireless communication;

FIG. 2 illustrates an example process in wireless communication;

FIG. 3 illustrates example elements of a device and associated network layers;

FIG. 4 illustrates a flowchart of an example method of wireless communication;

FIG. 5 illustrates a flowchart of another example method of wireless communication;

FIG. 6 illustrates a flowchart of another example method of wireless communication; and

FIG. 7 illustrates a block diagram of an example computing system that may be used to perform or direct performance of one or more operations described according to at least one implementation of the present disclosure.

DETAILED DESCRIPTION OF SOME EXAMPLE IMPLEMENTATIONS

Implementations described herein may generally relate to wireless communication.

In some implementations, wireless communication as described in this disclosure may include transmission of data frames that are coded with two or more data frames. For example, a data link layer of a transmission device may code a first data frame together with a second data frame to generate a third data frame. A signal may be encoded with the third data frame using a frequency segment. The signal may be wireles sly transmitted to a receiving device over a communication link between the receiving device and a transmitting device.

A receiving device may be configured to obtain the signal over the communication link and decode the signal to obtain the third data frame. In the data link layer of the receiving device, the third data frame may be further decoded to obtain the first data frame and the second data frame. Based on an analysis of the first data frame and the second data frame, the receiving device at the data link layer may discarded or maintain the first data frame and/or the second data frame.

In some implementations, the receiving device may obtain the first data frame and/or the second data frame over other communication links between the receiving device and the transmitting device that are different than the communication link that carried the third data frame. As a result, the receiving device may obtain the first data frame and the second data frame in duplication. Based on the duplication of the first data frame and the second data frame, the receiving device may discard the first data frame and the second data frame. Transmitting the first data frame and the second data frame in duplication may reduce the likelihood that the receiving device does not receive either of the first data frame and the second data frame. As such, transmitting the first data frame and the second data frame in duplication may reduce the likelihood that the receiving device may request retransmission of either of the first data frame and the second data frame. As a result, the reliability of data packet transmission may be increased, and potential latency of data packet transmission may be decreased.

These and other implementations of the present disclosure will be explained with reference to the accompanying figures. It is to be understood that the figures are diagrammatic and schematic representations of such example implementations, and are not limiting, nor are they necessarily drawn to scale. In the figures, features with like numbers indicate like structure and function unless described otherwise.

FIG. 1 illustrates an example environment 100 that includes wireless data transmission, in accordance with one or more implementations of the present disclosure. The environment 100 may include a first device 110, a second device 120, a third device 130, and a fourth device 140. The first device 110 may include a first antenna 112 a, a second antenna 112 b, and a third antennas 112 c, “the antennas 112.” The second device 120 may include a first antenna 122 a, a second antenna 122 b, and a third antennas 122 c, “the antennas 122.” The third device 130 may include a first antenna 132 a, a second antenna 132 b, and a third antennas 132 c, “the antennas 132.” The fourth device 140 may include a first antenna 142 a, a second antenna 142 b, and a third antennas 142 c, “the antennas 142.”

Each of the first device 110, the second device 120, the third device 130, and the fourth device 140 may be configured to transmit and receive wireless communications. In some implementations, each of the first device 110, the second device 120, the third device 130, and the fourth device 140 may be any electronic or digital device that is configured to transmit and receive wireless communications. In these and other implementations, the first device 110 may be configured as a device that may assist in maintaining a wireless local area network. For example, the first device 110 may include a gateway, a repeater, a mesh node, or any other suitable device configured to host or control access to a wireless local area network (WLAN).

In these and other implementations, each of the second device 120, the third device 130, and the fourth device 140 may be configured as a repeater, a mesh node, or any other suitable device configured to host or control access to a wireless local area network. Alternately or additionally, each of the second device 120, the third device 130, and the fourth device 140 may be configured as a client device that may be configured to access a wireless local area network. For example, each of the second device 120, the third device 130, and the fourth device 140 may include a desktop computer, a laptop computer, a smartphone, a mobile phone, a tablet computer, a vehicle, a repeater, a speaker, a smart device, an appliance, or any other electronic device that may be configured to transmit and/or receive wireless communications in a wireless local area network.

The antennas 112, the antennas 122, the antennas 132, and the antennas 142 may each be configured to operate in a first frequency band, a second frequency band, and/or a third frequency band, referred to as the frequency bands. The first, second, and third frequency bands may each be different frequency bands of operations and may each be used for a different wireless local area network (WLAN). For example, the first antenna 112 a may be configured to operate in the 5.0 GHz frequency band and support a first WLAN. The second antenna 112 b may be configured to operate in the 6.0 GHz frequency band and support a second WLAN. The third antenna 112 c may be configured to operate in the 2.4 GHz frequency band and support a third WLAN. Alternately or additionally, each of the antennas 112 may be configured to operate in the same frequency band and support the same WLAN. Alternately or additionally, the antennas 112, the antennas 122, the antennas 132, and the antennas 142 may be configured to operate in any configuration of frequency bands. In some implementations, each of the antennas 112, the antennas 122, the antennas 132, and the antennas 142 may be configured to operate in a different frequency band of operation during overlapping time periods, such as simultaneously. For example, the first antenna 112 a and the second antenna 112 b may simultaneously transmit and/or receive wireless communications in the first and second frequency bands, respectively.

The first, second, and third WLANs may be implemented using any of the 802.11 protocols or other suitable wireless standards or protocols. In these and other implementations, the first, second, and third frequency bands may be distinct radio frequency ranges that are defined for wireless communications. In some implementations, at least one of the first, second, and third frequency bands may include a discontinuous range of frequencies.

In some implementations, the first device 110 may be configured to transmit data to the second device 120, the third device 130, and the fourth device 140 over one or more communication links. A communication link may be a contiguous frequency segment of one of the frequency bands. For example, a communication link may include one or more contiguous channels of the 5 GHz frequency band. In some implementations, the first device 110 may be configured to transmit data to one or more of the second device 120, the third device 130, and the fourth device 140 over multiple communication links simultaneously.

In some implementations, the first device 110 may be configured to transmit data frames to one or more of the second device 120, the third device 130, and the fourth device 140 over communication links to the one or more of the second device 120, the third device 130, and the fourth device 140. For example, the first device 110 may transmit data frames to the second device 120 by encoding a first signal with a data frame using a frequency segment of a communication link between the first device 110 and the second device 120. Note that during the description of FIG. 1, communications between the first device 110 and the second device 120 may be described without mentioning communications between the first device 110 and third device 130 or the fourth device 140. Not mentioning the third device 130 or the fourth device 140 is for ease of explanation. Any communication between the first device 110 and the second device 120 may pertain to the third device 130, the fourth device 140, or other devices.

In some implementations, the first device 110 may transmit coded data frames to the second device 120. In these and other implementations, the first device 110 may be configured to generate a coded data frame for transmission to the second device 120 that is a union of two or more data frames. For example, the first device 110 may obtain a first data frame and a second data frame. The first device 110 may code the first data frame together with the second device to generate a third data frame. The first device 110 may provide the third frame to the second device 120. The second device 120 may decode the third frame to obtain a decoded first data frame and a decoded second frame. As such, the first device 110 may transmit a single data frame to the second device 120, but the second device 120 may obtain both the first data frame and the second data frame. Further details regarding the coding and decoding process is provided with respect to FIG. 2.

In some implementations, the first device 110 may transmit coded data frames in various scenarios. For example, the first device 110 may transmit coded data frames while relaying data between two different devices, such as the second device 120 and the third device 130. In this and other examples, the second device 120 may provide a first data frame to the first device 110 with a destination of the third device 130. The third device 130 may provide a second data frame to the first device 110 with a destination of the second device 120. The first device 110 may code together the first data frame and the second data frame to generate a third data frame. The third data frame may indicate that the third data frame is coded and information regarding the first and second data frames coded together to form the third data frame. The first device 110 may transmit the third data frame in a single transmission with a destination of both the first device 110 and the second device 120.

In some implementations, the second device 120 may be configured to decode the third data frame to obtain a decoded first data frame and a decoded second data frame. The second device 120 may be configured to analyze the decoded first data frame and the decoded second data frame. The analysis of the decoded first data frame and the decoded second data frame may determine whether an integrity of the decoded first data frame and the decoded second data frame is maintained. The second device 120 may also be configured to determine based on the analysis or the preamble of the third data frame, which of the decoded first data frame and the decoded second data frame originated at the third device 130 and which originated at the second device 120.

In some implementations, in response to the integrity of the decoded first and second data frames being maintained, the second device 120 may discard the decoded second data frame because the decoded second data frame originated at the second device 120. Thus, the decoded second data frame may not be indicated as received outside of the datalink layer. The second device 120 may provide the decoded third data frame as a received data frame to the other network layers of the second device 120. In response to the integrity of the decoded first and second data frames not being maintained, the second device 120 may request retransmission of the third data frame. The third device 130 may proceed in a manner analogous to the second device 120 but may provide the decoded second data frame as a received data frame to the other network layers of the third device 130.

In another scenario, the first device 110 may provide a first data frame to the second device 120. The integrity of the first data frame may not be maintained. For example, a checksum of the first data frame as received by the second device 120 may indicate that the first data frame was not correctly transmitted. In these and other implementations, the second device 120 may request retransmission of the first data frame. The first device 110 may also include a second data frame to transmit to the second device 120. In these and other implementations, the first device 110 may code the first data frame and the second data frame together to generate the third data frame. The first device 110 may provide the third data frame to the second device 120. The second device 120 may obtain the third data frame and decode the third data frame to obtain the first data frame and the second data frame. As a result, the second device 120 may obtain both the first data frame and the second data frame without a delay in reception of the second data frame based on retransmission of the first data frame.

In another scenario, the first device 110 may be configured to select a communication technique for transmission of data to the second device 120, the third device 130, and/or the fourth device 140. In these and other implementations, the communication technique may be selected based on a type of service indication of the data and/or network factors of the one or more WLANs associated with the first device 110. For example, a type of service indication of the data may indicate latency requirements, reliability requirements, and/or throughput requirements, among other requirements. For example, data from a low latency program such as a video conferencing may use a first communication technique and data where latency is not a concern may use a second communication technique.

A first communication technique may include coding together multiple frames as discussed in this disclosure to form a coded frame and transmission of the coded frame. A second communication technique may include using an existing link between the first device 110 and a receiving device, such as the second device 120 without coding of a data frame. A third communication technique may include selecting a link from multiple links in one or more of the frequency bands, e.g., the first frequency band, the second frequency band, and/or the third frequency band, with an appropriate stability and throughput for the type of service indicated for the data. To select between links, the first device 110 may be configured to obtain link state information. The link state information may be based on analysis of data frames previously exchanged and information collected from the second device 120, the third device 130, and/or the fourth device 140. The information collected may include channel quality indicator (CQI) information. In some implementations, the CQI information may be provided to the first device 110 outside of normal times when CQI information is collected. For example, additional CQI information outside of what normally is provided in a wireless protocol may be provided by inserting the additional CQI information in a larger frame. In these and other implementations, the CQI information may include information such as a duty cycle of the interference information.

Using the link state information, the first device 110 may determine a success rate and/or a maximum data rate for the multiple links. Based on the success rate and/or the maximum data rate, the first device 110 may select a link that is appropriate for the type of service indicated for the data.

A fourth communication technique may include duplication of data frames. For example, a data frame may be simultaneously transmitted over multiple links from the first device 110 to a receiving device, such as the second device 120. For example, the data frame may be simultaneously transmitted over a first link and over a second link from the first device 110 to the second device 120. In these and other implementations, the data frame may be encoded into a first signal using a first frequency segment of a frequency spectrum and the data frame may be encoded into a second signal using a second frequency segment of the frequency spectrum. In some implementations, the first device 110 may transmit the first signal and the second signal to the receiving device such that at least a portion of the first signal and a portion of the second are simultaneously transmitted. In some implementations, the first link and the second link may be part of different WLANs. Alternately or additionally, the first link and the second link may be part of the same WLAN.

After selection of the communication technique, the first device 110 may be configured to direct the data for transmission to the second device 120, the third device 130, and/or the fourth device 140 using the selected technique.

In some implementations, the communication technique selected may change from data frame to data frame for the data to the transmitted to a receiving device. For example, for a first data frame, the fourth communication technique may be used. For a second data frame, the first communication technique may be used and for a third data frame, the third communication technique may be used. Any combination of communication techniques may be used for series of data frames for transmitting data from the first device 110 to a receiving device. In these and other implementations, the first device 110 may use different techniques for transmitting to different receiving devices. For example, the first device 110 may use the fourth communication technique for transmission to the second device 120 and the first communication technique for transmission to the third device 130. Alternately or additionally, any combination of the techniques may be selected. For example, the first, third, and/or fourth communication techniques may be combined.

As an example, the third communication technique may be used to select multiple frequency segments for the fourth communication technique and the data frames sent over the multiple frequency segments may be coded data frames that represent two or more data frames as described in this disclosure.

As another example, multiple frequency segments, each of a different WLAN and communication link between the first device 110 and a receiving device, such as the second device 120 may be selected for transmission. A first data frame and a second data frame may be configured for transmission from the first device 110 to the second device 120. In these and other implementations, the first data frame and the second data frame may be coded together to form a third data frame. The first data frame may be transmitted by the first device 110 over a first frequency segment of a first WLAN, the second data frame may be transmitted by the first device 110 over a second frequency segment of a second WLAN, and the third data frame may be transmitted by the first device 110 over a third frequency segment of a third WLAN. Thus, the second device 120 may obtain each of the first and second data frames in duplication after decoding of the third data frame.

In some implementations, duplication of the first and second data frames may reduce how often the second device 120 may request a retransmission of either of the first and second data frames. For example, the second device 120 may determine an integrity of the first and second data frames as obtained for the first and second frequency segments. In response to the integrity of one or both of the first and second data frames not being maintained, the second device 120 may use one or both of the first and second data frames decoded from the obtained third data frame based on the integrity of the third data frame also being maintained. In these and other implementations, in response to the integrity of one or both of the first and second data frames being maintained, the second device 120 may discard the first and second data frames decoded from the obtained third data frame even when the integrity of the first and second data frames decoded from the obtained third data frame is maintained.

Modifications, additions, or omissions may be made to the environment 100 without departing from the scope of the present disclosure. For example, the environment 100 may include any number of other elements or may be implemented within other systems or contexts than those described. For example, the first device 110, the second device 120, the third device 130, and/or the fourth device 140 may include addition antennas. As another example, the environment 100 may include fewer or more devices than the device illustrated.

FIG. 2 illustrates an example process 200 in wireless communication, in accordance with one or more implementations of the present disclosure. The process 200 illustrates a coding and decoding process of data frames in a transmitting device 250 and a receiving device 260.

The transmitting device 250, such as the first device 110 of FIG. 1, may include a first frame 202 and a second frame 204 that are provided to a coding process 210. The coding process 210 may generate a third data frame 212 using the first frame 202 and the second frame 204. The transmitting device 250 may transmit the third data frame 212 to the receiving device 260.

In some implementations, the coding process 210 may occur in a datalink layer of network protocol layers of the transmitting device 250. The network protocol layers may refer to different categories of networking functions performed by a device. Example network protocols may include the open system interconnection model (OSI), Internet Protocol Suite (TCP/IP), among other network protocols. The datalink layer, as used in this disclosure, may be described by different names in different protocols, such as a network access layer, network interface layer, or link layer. The datalink layer, as used in this disclosure, may refer to the layer directly above the physical or hardware layer. In some instances with respect to wireless communications, the media access control (MAC) layer may be part of or may be used to describe the datalink layer for wireless communications. The term network layer as used in this disclosure may refer to the layer directly above the datalink layer. The data in the network layer may be referred to as data packets and the data in the datalink layer may be referred to as data frames.

In some implementations, the first frame 202 and the second frame 204 may be data frames received in the datalink layer of the transmitting device 250. For example, the first frame 202 and the second frame 204 may correspond to data packets in the network layer of the transmitting device 250. The first frame 202 and the second frame 204 may be formed by different data. For example, the data in the first frame 202 may correspond to a first packet in a network layer and the data in the second frame 204 may be correspond to a second packet in the network layer.

In some implementations, the coding process 210 may be configured to code the first frame 202 together with the second frame 204 to generate the third data frame 212. Different types of coding may be used to code the first frame 202 together with the second frame 204 to generate the third data frame 212. For example, an XOR or linear coefficient functions coding may be used, among other types of coding functions. In these and other implementations, the third data frame 212 may code together different portions of the first frame 202 and the second frame 204 to form coded portions of the third data frame 212.

In some implementations, particular portions of the header portion and other portions of the third data frame 212 may be based on the coded portions. For example, the frame check sequence or other portions of the third data frame 212 may be based on the coded portions. Other portions of the third data frame 212 may be based on other portions of one or more of the first frame 202 and/or the second frame 204. For example, addresses and other frame control information of the third data frame 212 may be based on analogous portions of the first frame 202 and/or the second frame 204. In some implementations, the third data frame 212 may include an indication that the third data frame 212 includes coded portions. In these and other implementations, the indication may provide information regarding a type of coding performed to generate the coded portions.

In some implementations, the coding process 210 may allow the third data frame 212 to be decoded to restore the first frame 202 and the second frame 204 or relevant portions of the first frame 202 and the second frame 204, such as sequence numbers, payloads, checksums, and other portions of the first frame 202 and the second frame 204 that may be used for verification of integrity of the first frame 202 and the second frame 204 and/or used by other network layers of a receiving device. For example, a coded payload portion of the third data frame 212 may be decoded to restore the payload portion of the first frame 202 and the payload portion of the second frame

In some implementations, the coding process 210 may be decoded using a coefficient. In these and other implementations, the coefficient may be a shared secret between the transmitting device 250 and the receiving device 260. Thus, the coding process 210 may result in a layer of security for the third data frame 212.

The receiving device 260, such as the second device 120 of FIG. 1, may receive the third data frame 212. The receiving device 260 may provide the third data frame 212 to a decoding process 220. The decoding process 220 may generate a decoded first data frame 222 and a decoded second data frame 224. In these and other implementations, the decoding process 220 may be configured to decode the coded third data frame 212 to generate the decoded first data frame 222 and the decoded second data frame 224.

In some implementations, the process 220 may analyze the preamble to determine that the third data frame 212 is a coded data frame and/or to determine a type of coding. Based on the preamble, the process 220 may decode the third data frame 212. The decoded first data frame 222 may include portions that are the same as the first frame 202. However, the first data frame 222 may not include all of the fields of the first frame 202. Alternately or additionally, the decoded second data frame 224 may include portions that are the same as the second frame 204. However, the decoded second data frame 224 may not include all of the fields of the second frame 204.

Modifications, additions, or omissions may be made to the process 200 without departing from the scope of the present disclosure. For example, in some implementations, the process 200 may include coding more than two data frames together to generate an additional data frame for transmission. For example, three, four, five, or six data frames may be coded together to form another data frame.

FIG. 3 illustrates an example device 300 configured for wireless data transmission, in accordance with one or more implementations of the present disclosure. The device 300 may be an example implementation of one of the devices of FIG. 1. The device 300 may include an antenna element 302, a processor 310, memory 312, hardware 320, and a RF front-end circuit 330.

In some implementations, the hardware 320 may be part of a datalink layer of the device 300. The hardware 320 may be configured to code together multiple data frames to generate additional data frames. The hardware 320 may also be configured to encode transmit signals with data frames using a baseband frequency. The hardware 320 may provide the transmit signals to the RF front-end circuit 330. The hardware 320 may also be configured to obtain receive signals at a baseband frequency from the RF front-end circuit 330 and to decode the obtained receive signals to obtain data frames. Based on information in the obtained data frames, the hardware 320 may decode the obtained data frames to obtain additional obtained data frames. In some implementations, the hardware 320 may provide one or more of the obtained data frames or additional data frames to processor 310 for further processing.

In some implementations, the hardware 320 may be configured to encode signals with data frames based on a communication technique selected for transmission of the data frames. For example, the hardware 320 may generate two or more baseband transmit signals from a single transmit data frame. The hardware 320 may provide the two or more baseband transmit signals to the RF front-end circuit 330.

In some implementations, the hardware 320 may be configured to receive a type of service for a data frame. The type of service may indicate a latency level and/or reliability level requested for the data frame. The hardware 320 may also be configured to receive one or more network factors regarding the WLAN hosted by the device 300. The network factors may include frequency band data, such as potential data rates of frequency bands supported by the device 300, ranges of the frequency bands supported the device 300, and power requirements of the frequency band supported the device 300; environment data such as interferes in the environment and other wireless networks in the environment that includes the device 300; and device data such as frequency bands of operation of the device 300, among other types of data.

In these and other implementations, the hardware 320 may be configured to select a communication technique for the data frames provided to the hardware 320 based on the type of service and/or the network factors. Based on the selected communication technique, the hardware 320 may perform operations to implement the selected communication technique. For example, in response to selecting duplication of a data frame, the hardware 320 may be configured to select frequency segments for multiple signals configured to carry the duplicated data frame. Alternately or additionally, in response to selecting frame coding, the hardware 320 may be configured to code multiple data frames together to generate another data frame for transmission.

In some implementations, the hardware 320 may be further configured to process received data frames. For example, the hardware 320 may analyze the data frames to determine where the data frames are coded data frames and/or duplicate data frames and an integrity of the data frames. For example, the hardware 320 may analyze the preamble to extract information indicating the data frames are coded frames and/or duplicate data frames. Alternately or additionally, the hardware 320 may analyze characteristics of data frames to determine the data frames are duplicates, such as a sequence number and/or a length, among other characteristics. In these and other implementations, the hardware 320 may discard one or more of the data frames based on the analysis. Alternately or additionally, the hardware 320 may provide one or more of the data frames as received data frames to the processor 310 based on the analysis.

In some implementations, the RF front-end circuit 330 may be part of a physical layer of the device 300. The RF front-end circuit 330 may be configured to obtain baseband transmit signals from the hardware 320. The RF front-end circuit 330 may include a conversion circuit configured to shift the baseband transmit signals to different frequency segments based on the selected communication technique. For example, the RF front-end circuit 330 may shift a first baseband transmit signal to a first frequency segment of a first frequency band for transmission by the antenna element and shift a second baseband transmit signal to a second frequency segment of a second frequency band for transmission by the antenna element 302.

The RF front-end circuit 330 may further be configured to obtain receive signals from the antenna elements 302. The conversion circuit of the RF front-end circuit 330 may be configured to shift the receive signals to the baseband frequency and provided the receive signals at the baseband frequency to the hardware 320. The RF front-end circuit 330 may further include additional circuitry that may be configured to further condition transmit and receive signals for the supported frequency bands, such as filters, amplifiers, and other circuitry.

In some implementations, the processor 310 may be part of a network layer or other networking layers of the device 300. The processor 310 may be configured to provide data frames to the hardware 320 for transmission. The processor 310 may also obtain data frames from the hardware 320 as obtained data frames. The processor 310 may not be aware of the communication technique selection, duplication of data frames, and/or data frame coding that may be performed by the hardware 320.

An example of the processor 310 may include the processor 2050 of FIG. 7. An example of the memory 312 may include the memory 2052 and/or the data storage 2054 of FIG. 7. Modifications, additions, or omissions may be made to the device 300 without departing from the scope of the present disclosure.

FIG. 4 illustrates a flowchart of an example method 400 of wireless data transmission, in accordance with one or more implementations of the present disclosure. The method 400 may be implemented, in whole or in part, by one or more of the devices of FIG. 1 or 3.

At block 402, network factors and a type of service for one or more data frames may be obtained. For example, hardware of a datalink layer of a device, such as the first device 110 of FIG. 1, may obtain the network factors and the type of service.

At block 404, a communication technique for the one or more data frames may be selected based on the network factors and the type of service. For example, data frame coding of data frames may be selected for a first data frame and a second data frame.

At block 406, one or more signals may be constructed based on the selected communication techniques. For example, a first signal may be encoded with a third data frame generated by coding the first data frame together with the second data frame.

At block 408, the one or more signals may be transmitted. For example, the first signal may be transmitted.

At block 410, the one or more signals may be received. For example a receiving device may receive the first signal.

At block 412, the one or more data frames may be obtained from the one or more signals. The first signal may be decoded to obtain a first copy of the third data frame. The receiving device may analyze the first copy of the third data frame to determine the third data frame is a coded data frame. Based on the analysis, the receiving device may decode the third data frame to obtain a copy of the first data frame and a copy of the second data frame.

One skilled in the art will appreciate that, for this and other processes and methods disclosed herein, the functions performed in the processes and methods may be implemented in differing order, simultaneously, etc. Furthermore, the outlined steps and operations are only provided as examples, and some of the steps and operations may be optional, combined into fewer steps and operations, or expanded into additional steps and operations without detracting from the essence of the disclosed implementations.

FIG. 5 illustrates a flowchart of an example method 500 of wireless data transmission, in accordance with one or more implementations of the present disclosure. The method 500 may be implemented, in whole or in part, by one or more of the devices of FIG. 1 or 3.

At block 502, a first data frame for wireless transmission may be obtained by a data link layer. The first data frame may be obtained from a network layer. At block 504, a second data frame for wireless transmission may be obtained by the data link layer. The second data frame may be obtained from the network layer.

At block 506, coding, at the data link layer, the first data frame together with the second data frame to generate a third data frame. In some implementations, a preamble of the third data frame indicates that the third data frame is a coded data frame that includes two data frames. Alternately or additionally, data of the first data frame may originate at a first device and data of the second data frame may originate at a second device. In these and other implementations, the third data frame may include an indication that the third data frame is intended for the first device and the second device and the first signal is provided for wireless transmission to both the first device and the second device.

At block 508, a first signal may be encoded with the third data frame using a first frequency segment. At block 510, the first signal may be provided for wireless transmission.

In some implementations, the method 500 may further include encoding a second signal with the first data frame using a second frequency segment and encoding a third signal with the second data frame using a third frequency segment. In these and other implementations, the method 500 may further include providing the second signal and the third signal for wireless transmission. In these and other implementations, at least a portion of the first signal, a portion of the second signal, and a portion of the third signal may be simultaneously wireless transmitted.

In some implementations, the first frequency segment may be included in a first frequency band configured to support a first wireless network, the second frequency segment may be included in a second frequency band configured to support a second wireless network, and the third frequency segment may be included in a third frequency band configured to support a third wireless network. In these and other implementations, the first frequency band, the second frequency band, and the third frequency band may be defined under the 802.11 protocol and each of the first frequency band, the second frequency band, and the third frequency band may be one of: a 2.4 GHz band, a 5 GHz band, and a 6 GHz band.

FIG. 6 illustrates a flowchart of an example method 600 of wireless data transmission, in accordance with one or more implementations of the present disclosure. The method 600 may be implemented, in whole or in part, by one or more of the devices of FIG. 1 or 3.

At block 602, a first signal encoded with a first data frame may be wirelessly obtained. In some implementations, the first data frame may be generated before wireless transmission by coding a second data frame together with a third data frame.

At block 604, the first data frame may be decoded at a data link layer to extract the second data frame and the third data frame. At block 606, the second data frame, the third data frame, or both the second data frame and the third data frame may be analyzed at the data link layer.

At block 608, the second data frame decoded from the first data frame may be discarded in response to the analysis of the second data frame, the third data frame, or both the second data frame and the third data frame.

At block 610, the third data frame decoded from the first data frame may be provided as a received data frame to a network layer in response to the analysis of the second data frame, the third data frame, or both the second data frame and the third data frame.

In some implementations, the method 600 may further include determining an integrity of the second data frame decoded from the first data frame is maintained. In these and other implementations, the second data frame may be discarded with the maintained integrity.

In some implementations, the method 600 may further include before wirelessly obtaining the first signal encoded with the first data frame, providing the second data frame for wireless transmission. In these and other implementations, the analysis of the second data frame includes determining that the second data frame decoded from the first data frame is the same as the second data frame provided for wireless transmission and in response to determining that the second data frame decoded from the first data frame is the same as the second data frame provided for wireless transmission, the second data frame is discarded. In these and other implementations, the third data frame may originate at a device separate from the device that wirelessly transmits the first data frame.

In some implementations, the method 600 may further include wirelessly obtaining a second signal encoded with the second data frame and wirelessly obtaining a third signal encoded with the third data frame. In these and other implementations, at least a portion of the first signal, a portion of the second signal, and a portion of the third signal are simultaneously obtained.

In these and other implementations, the method 600 may further include determining an integrity of the second data frame from the second signal and determining an integrity of the third data frame from the third signal. The method 600 may further include in response to the analysis of the second data frame, the third data frame, or both the second data frame and the third data frame, the determined integrity of the second data frame from the second signal, and the determined integrity of the third data frame from the third signal: providing the second data frame from the second signal as a second received data frame to the network layer and discarding the third data frame from the third signal. In these and other implementations, the third data frame from the third signal may be discarded in response to the integrity of the third data frame from the third signal being determined as not being maintained.

In some implementations, the method 600 may further include wirelessly obtaining a second signal encoded with a fourth data frame and wirelessly obtaining a third signal encoded with a fifth data frame. The method 600 may also include wirelessly obtaining a fourth signal encoded with a sixth data frame, decoding the fourth data frame to extract a copy of the fifth data frame and a copy of the sixth data frame, determining an integrity of the copy of the fifth data frame is not maintained, and providing the fifth data frame from the third signal and the sixth data frame from the fourth signal as received data frames to the network layer.

In some implementations, the method 600 may further include wirelessly obtaining a second signal encoded with a fourth data frame, decoding the fourth data frame to extract a fifth data frame and a sixth data frame, and analyzing, at the data link layer, the fifth data frame, the sixth data frame, or both the fifth data frame and the sixth data frame. The method 600 may further include determining an integrity of the fifth data frame is maintained, determining an integrity of the sixth data frame is maintained, and in response to the analysis of the fifth data frame, the sixth data frame, or both the fifth data frame and the sixth data frame and the integrity of both the fifth data frame and the sixth data frame being maintained, discarding the fifth data frame and the sixth data frame.

The subject technology of the present disclosure is illustrated, for example, according to various aspects described below. Various examples of aspects of the subject technology are described as numbered examples (1, 2, 3, etc.) for convenience. These are provided as examples and do not limit the subject technology. The aspects of the various implementations described herein may be omitted, substituted for aspects of other implementations, or combined with aspects of other implementations unless context dictates otherwise. For example, one or more aspects of example 1 below may be omitted, substituted for one or more aspects of another example (e.g., example 2) or examples, or combined with aspects of another example. The following is a non-limiting summary of some example implementations presented herein.

Example 1 may include a method of wireless data transmission that may include obtaining, by a data link layer, a first data frame from a network layer, the first data frame for wireless transmission and obtaining, by the data link layer, a second data frame from the network layer, the second data frame for wireless transmission . The method may further include coding, at the data link layer, the first data frame together with the second data frame to generate a third data frame and encoding a first signal with the third data frame using a first frequency segment. The method may further include providing the first signal for wireless transmission.

Example 2 may include a device include hardware configured to perform operations, including for a data link layer. The operations may include obtain, from a network layer, a first data frame for wireless transmission and obtain, from the network layer, a second data frame for wireless transmission. The operations may also include code, at the data link layer, the first data frame together with the second data frame to generate a third data frame, encode a first signal with the third data frame using a first frequency segment, and providing the first signal for wireless transmission. The device may also include front-end circuitry coupled to the hardware and configured to adapt the first signal for wireless transmission.

Example 3 may include a method of wireless data communication that may include wirelessly obtaining a first signal encoded with a first data frame. The first data frame may be generated before wireless transmission by coding a second data frame together with a third data frame. The method may also include decoding, at a data link layer, the first data frame to extract the second data frame and the third data frame and analyzing, at the data link layer, the second data frame, the third data frame, or both the second data frame and the third data frame. The method may also include in response to the analysis of the second data frame, the third data frame, or both the second data frame and the third data frame: discarding the second data frame decoded from the first data frame and providing the third data frame decoded from the first data frame as a received data frame to a network layer.

FIG. 7 illustrates a block diagram of an example computing system 2002 that may be used to perform or direct performance of one or more operations described according to at least one implementation of the present disclosure. The computing system 2002 may include a processor 2050, a memory 2052, and a data storage 2054. The processor 2050, the memory 2052, and the data storage 2054 may be communicatively coupled.

In general, the processor 2050 may include any suitable special-purpose or general-purpose computer, computing entity, or processing device including various computer hardware or software modules and may be configured to execute instructions stored on any applicable computer-readable storage media. For example, the processor 2050 may include a microprocessor, a microcontroller, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a Field-Programmable Gate Array (FPGA), or any other digital or analog circuitry configured to interpret and/or to execute computer-executable instructions and/or to process data. Although illustrated as a single processor, the processor 2050 may include any number of processors configured to, individually or collectively, perform or direct performance of any number of operations described in the present disclosure.

In some implementations, the processor 2050 may be configured to interpret and/or execute computer-executable instructions and/or process data stored in the memory 2052, the data storage 2054, or the memory 2052 and the data storage 2054. In some implementations, the processor 2050 may fetch computer-executable instructions from the data storage 2054 and load the computer-executable instructions in the memory 2052. After the computer-executable instructions are loaded into memory 2052, the processor 2050 may execute the computer-executable instructions.

The memory 2052 and the data storage 2054 may include computer-readable storage media for carrying or having computer-executable instructions or data structures stored thereon. Such computer-readable storage media may include any available media that may be accessed by a general-purpose or special-purpose computer, such as the processor 2050. By way of example, and not limitation, such computer-readable storage media may include tangible or non-transitory computer-readable storage media including Random Access Memory (RAM), Read-Only Memory (ROM), Electrically Erasable Programmable Read-Only Memory (EEPROM), Compact Disc Read-Only Memory (CD-ROM) or other optical disk storage, magnetic disk storage or other magnetic storage devices, flash memory devices (e.g., solid state memory devices), or any other storage medium which may be used to carry or store particular program code in the form of computer-executable instructions or data structures and which may be accessed by a general-purpose or special-purpose computer. Combinations of the above may also be included within the scope of computer-readable storage media. Computer-executable instructions may include, for example, instructions and data configured to cause the processor 2050 to perform a certain operation or group of operations.

Some portions of the detailed description refer to different modules configured to perform operations. One or more of the modules may include code and routines configured to enable a computing system to perform one or more of the operations described therewith. Additionally or alternatively, one or more of the modules may be implemented using hardware including any number of processors, microprocessors (e.g., to perform or control performance of one or more operations), DSP's, FPGAs, ASICs or any suitable combination of two or more thereof. Alternatively or additionally, one or more of the modules may be implemented using a combination of hardware and software. In the present disclosure, operations described as being performed by a particular module may include operations that the particular module may direct a corresponding system (e.g., a corresponding computing system) to perform. Further, the delineating between the different modules is to facilitate explanation of concepts described in the present disclosure and is not limiting. Further, one or more of the modules may be configured to perform more, fewer, and/or different operations than those described such that the modules may be combined or delineated differently than as described.

Some portions of the detailed description are presented in terms of algorithms and symbolic representations of operations within a computer. These algorithmic descriptions and symbolic representations are the means used by those skilled in the data processing arts to convey the essence of their innovations to others skilled in the art. An algorithm is a series of configured operations leading to a desired end state or result. In example implementations, the operations carried out require physical manipulations of tangible quantities for achieving a tangible result.

Unless specifically stated otherwise, as apparent from the discussion, it is appreciated that throughout the description, discussions utilizing terms such as detecting, determining, analyzing, identifying, scanning or the like, can include the actions and processes of a computer system or other information processing device that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system's memories or registers or other information storage, transmission or display devices.

Example implementations may also relate to an apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, or it may include one or more general-purpose computers selectively activated or reconfigured by one or more computer programs. Such computer programs may be stored in a computer readable medium, such as a computer-readable storage medium or a computer-readable signal medium. Computer-executable instructions may include, for example, instructions and data which cause a general-purpose computer, special-purpose computer, or special-purpose processing device (e.g., one or more processors) to perform or control performance of a certain function or group of functions.

Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter configured in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.

An example apparatus can include a Wireless Access Point (WAP) or a station and incorporating a VLSI processor and program code to support. An example transceiver couples via an integral modem to one of a cable, fiber or digital subscriber backbone connection to the Internet to support wireless communications, e.g. IEEE 802.11 compliant communications, on a Wireless Local Area Network (WLAN). The WiFi stage includes a baseband stage, and the analog front end (AFE) and Radio Frequency (RF) stages. In the baseband portion wireless communications transmitted to or received from each user/client/station are processed. The AFE and RF portion handles the upconversion on each of transmit paths of wireless transmissions initiated in the baseband. The RF portion also handles the downconversion of the signals received on the receive paths and passes them for further processing to the baseband.

An example apparatus can be a multiple-input multiple-output (MIMO) apparatus supporting as many as N×N discrete communication streams over N antennas. In an example the MIMO apparatus signal processing units can be implemented as N×N. In various implementations, the value of N can be 4, 6, 8, 12, 16, etc. Extended MIMO operation enables the use of up to 2N antennae in communication with another similarly equipped wireless system. It should be noted that extended MIMO systems can communicate with other wireless systems even if the systems do not have the same number of antennae, but some of the antennae of one of the stations might not be utilized, reducing optimal performance.

Channel State Information (CSI) from any of the devices described herein can be extracted independent of changes related to channel state parameters and used for spatial diagnosis services of the network such as motion detection, proximity detection, and localization which can be utilized in, for example, WLAN diagnosis, home security, health care monitoring, smart home utility control, elder care, automotive tracking and monitoring, home or mobile entertainment, automotive infotainment, and the like.

Unless specific arrangements described herein are mutually exclusive with one another, the various implementations described herein can be combined in whole or in part to enhance system functionality and/or to produce complementary functions. Likewise, aspects of the implementations may be implemented in standalone arrangements. Thus, the above description has been given by way of example only and modification in detail may be made within the scope of the present disclosure.

With respect to the use of substantially any plural or singular terms herein, those having skill in the art can translate from the plural to the singular or from the singular to the plural as is appropriate to the context or application. The various singular/plural permutations may be expressly set forth herein for sake of clarity. A reference to an element in the singular is not intended to mean “one and only one” unless specifically stated, but rather “one or more.” Moreover, nothing disclosed herein is intended to be dedicated to the public regardless of whether such disclosure is explicitly recited in the above description.

In general, terms used herein, and especially in the appended claims (e.g., bodies of the appended claims) are generally intended as “open” terms (e.g., the term “including” should be interpreted as “including but not limited to,” the term “having” should be interpreted as “having at least,” the term “includes” should be interpreted as “includes but is not limited to,” etc.). Furthermore, in those instances where a convention analogous to “at least one of A, B, and C, etc.” is used, in general, such a construction is intended in the sense one having skill in the art would understand the convention (e.g., “a system having at least one of A, B, and C” would include but not be limited to systems that include A alone, B alone, C alone, A and B together, A and C together, B and C together, or A, B, and C together, etc.). Also, a phrase presenting two or more alternative terms, whether in the description, claims, or drawings, should be understood to include one of the terms, either of the terms, or both terms. For example, the phrase “A or B” will be understood to include the possibilities of “A” or “B” or “A and B.”

Additionally, the use of the terms “first,” “second,” “third,” etc., are not necessarily used herein to connote a specific order or number of elements. Generally, the terms “first,” “second,” “third,” etc., are used to distinguish between different elements as generic identifiers. Absence a showing that the terms “first,” “second,” “third,” etc., connote a specific order, these terms should not be understood to connote a specific order. Furthermore, absence a showing that the terms first,” “second,” “third,” etc., connote a specific number of elements, these terms should not be understood to connote a specific number of elements.

The present invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described implementations are to be considered in all respects only as illustrative and not restrictive. The scope of the invention is, therefore, indicated by the appended claims rather than by the foregoing description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope. 

What is claimed is:
 1. A method of wireless data communication, the method comprising: obtaining, by a data link layer, a first data frame from a network layer, the first data frame for wireless transmission; obtaining, by the data link layer, a second data frame from the network layer, the second data frame for wireless transmission; coding, at the data link layer, the first data frame together with the second data frame to generate a third data frame; encoding a first signal with the third data frame using a first frequency segment; and providing the first signal for wireless transmission.
 2. The method of claim 1, further comprising: encoding a second signal with the first data frame using a second frequency segment; encoding a third signal with the second data frame using a third frequency segment; and providing the second signal and the third signal for wireless transmission.
 3. The method of claim 2, wherein the first frequency segment is included in a first frequency band configured to support a first wireless network, the second frequency segment is included in a second frequency band configured to support a second wireless network, and the third frequency segment is included in a third frequency band configured to support a third wireless network.
 4. The method of claim 3, wherein the first frequency band, the second frequency band, and the third frequency band are defined under the 802.11 protocol and each of the first frequency band, the second frequency band, and the third frequency band are one of: a 2.4 GHz band, a 5 GHz band, and a 6 GHz band.
 5. The method of claim 1, wherein data of the first data frame originates at a first device and data of the second data frame originates at a second device, the third data frame includes an indication that the third data frame is intended for the first device and the second device, and the first signal is provided for wireless transmission to both the first device and the second device.
 6. The method of claim 1, wherein a preamble of the third data frame indicates that the third data frame is a coded data frame that includes two data frames.
 7. A device comprising: hardware configured to perform operations, including for a data link layer, the operations including: obtain, from a network layer, a first data frame for wireless transmission; obtain, from the network layer, a second data frame for wireless transmission; code, at the data link layer, the first data frame together with the second data frame to generate a third data frame; encode a first signal with the third data frame using a first frequency segment; and providing the first signal for wireless transmission; and front-end circuitry coupled to the hardware and configured to adapt the first signal for wireless transmission.
 8. The device of claim 7, wherein the operations further include: encode a second signal with the first data frame using a second frequency segment; and encode a third signal with the second data frame using a third frequency segment; and the front-end circuitry is further configured to adapt the second signal and the third signal for wireless transmission such that at least a portion of the first signal, a portion of the second signal, and a portion of the third signal are simultaneously wireless transmitted.
 9. The device of claim 7, wherein data of the first data frame originates at a first device and data of the second data frame originates at a second device, the third data frame includes an indication that the third data frame is intended for the first device and the second device, and the first signal is provided for wireless transmission to both the first device and the second device.
 10. The device of claim 7, wherein a preamble of the third data frame indicates that the third data frame is a coded data frame that includes two data frames.
 11. A method of wireless data communication, the method comprising: wirelessly obtaining a first signal encoded with a first data frame, the first data frame being generated before wireless transmission by coding a second data frame together with a third data frame; decoding, at a data link layer, the first data frame to extract the second data frame and the third data frame; analyzing, at the data link layer, the second data frame, the third data frame, or both the second data frame and the third data frame; in response to the analysis of the second data frame, the third data frame, or both the second data frame and the third data frame: discarding the second data frame decoded from the first data frame; and providing the third data frame decoded from the first data frame as a received data frame to a network layer.
 12. The method of claim 11, further comprising determining an integrity of the second data frame decoded from the first data frame is maintained, wherein the second data frame is discarded with the maintained integrity.
 13. The method of claim 11, further comprising before wirelessly obtaining the first signal encoded with the first data frame, providing the second data frame for wireless transmission.
 14. The method of claim 13, wherein the analysis of the second data frame includes determining that the second data frame decoded from the first data frame is the same as the second data frame provided for wireless transmission and in response to determining that the second data frame decoded from the first data frame is the same as the second data frame provided for wireless transmission the second data frame is discarded.
 15. The method of claim 13, wherein the third data frame originates at a device separate from the device that wirelessly transmits the first data frame.
 16. The method of claim 11, further comprising: wirelessly obtaining a second signal encoded with the second data frame; and wirelessly obtaining a third signal encoded with the third data frame.
 17. The method of claim 16, further comprising: determining an integrity of the second data frame from the second signal; determining an integrity of the third data frame from the third signal; and in response to the analysis of the second data frame, the third data frame, or both the second data frame and the third data frame, the determined integrity of the second data frame from the second signal, and the determined integrity of the third data frame from the third signal: providing the second data frame from the second signal as a second received data frame to the network layer; and discarding the third data frame from the third signal.
 18. The method of claim 17, wherein the third data frame from the third signal is discarded in response to the integrity of the third data frame from the third signal being determined as not being maintained.
 19. The method of claim 11, further comprising: wirelessly obtaining a second signal encoded with a fourth data frame; wirelessly obtaining a third signal encoded with a fifth data frame; wirelessly obtaining a fourth signal encoded with a sixth data frame, the sixth data frame being generated before wireless transmission by coding the fourth data frame together with the determining an integrity of the fourth data frame and the fifth data frame is maintained; and in response to determining the integrity of the fourth data frame and the fifth data frame is maintained, discarding the sixth data frame.
 20. The method of claim 11, further comprising: wirelessly obtaining a second signal encoded with a fourth data frame; decoding the fourth data frame to extract a fifth data frame and a sixth data frame; analyzing, at the data link layer, the fifth data frame, the sixth data frame, or both the fifth data frame and the sixth data frame; determining an integrity of the fifth data frame is maintained; determining an integrity of the sixth data frame is maintained; and in response to the analysis of the fifth data frame, the sixth data frame, or both the fifth data frame and the sixth data frame and the integrity of both the fifth data frame and the sixth data frame being maintained, discarding the fifth data frame and the sixth data frame. 